﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace Happy.Event
{
    /// <summary>
    /// 发布订阅模式。
    /// </summary>
    /// <remarks>
    /// <see cref="IEventPublisher"/>发布<see cref="IEvent"/>的过程如下：
    /// <list type="number">
    ///     <item>同步执行由<see cref="EventInterceptorAttribute"/>组成的管道，执行发布前的预处理，如果出现异常，停止发布。如果运行在事务中，事务会回滚。</item>
    ///     <item>同步执行所有的<see cref="ISyncEventSubscriber{TEvent}"/>，如果出现异常，停止发布。如果运行在事务中，事务会回滚。</item>
    ///     <item>异步执行所有的<see cref="IAsyncEventSubscriber{TEvent}"/>，如果出现异常，记录异常到日志并继续运行。如果运行在事务中，事务不会回滚。</item>
    ///     <item>同步执行由<see cref="EventInterceptorAttribute"/>组成的管道，执行发布后的后续处理，如果出现异常，停止发布。如果运行在事务中，事务会回滚。</item>
    /// </list>
    /// </remarks>
    [System.Runtime.CompilerServices.CompilerGeneratedAttribute()]
    class NamespaceDoc
    {
    }
}
